package observer.Weather2;

import java.util.Observable;
import java.util.Observer;
import observer.weather.DisplayElement;

public class CurrentConditionsDisplay implements Observer, DisplayElement{
	
	Observable observable;
	private float temperature;
	private float humidity;
	
	// Observable을 인자로 받아 들인 다음, 그 레퍼런스를 써서 옵저버스 등록.
	public CurrentConditionsDisplay(Observable observable){
		this.observable = observable;
		observable.addObserver(this);
	}
	
	//Observable과 추가 데이터 인자를 모두 받아들이도록,
	public void update(Observable obs, Object arg){
		if (obs instanceof WeatherData){
			WeatherData weatherData = (WeatherData)obs;
			this.temperature = weatherData.getTemperature();
			this.humidity = weatherData.getHumidity();
			display();
		}
	}

	@Override
	//update() 메소드에서는 우선 Observable이 WeatherData 형식인지 확인한 다음 게터메소드를 써서 기온과 습도를
	//가져옴. 그 다음 display() 메소드 호출.
	public void display() {
		// TODO Auto-generated method stub
		System.out.println("Current conditions: " + temperature + 
				"F degrees and " + humidity + "% humidity");
		
	}

}
